﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Share
{
    public enum AutoNumberCode
    {
        /// <summary>
        /// Mã tự động cho phiếu nhập hàng
        /// </summary>
        IPO,
        
        /// <summary>
        /// Mã tự động cho phiếu sử dụng
        /// </summary>
        MUS,

        /// <summary>
        /// Mã tự động cho hóa đơn
        /// </summary>
        IVC
    }

    public enum CurrentToolBar
    {

    }

    public class TOOLBAR
    {
        public bool AllowAdd { get; set; }
        public bool AllowEdit { get; set; }
        public bool AllowSave { get; set; }
        public bool AllowDelete { get; set; }
        public bool AllowPrint { get; set; }
        public bool AllowRefresh { get; set; }

        public TOOLBAR()
        {
            AllowAdd = false;
            AllowEdit = false;
            AllowSave = false;
            AllowDelete = false;
            AllowPrint = true;
            AllowRefresh = true;
        }
    }

    public enum TabpageName
    {
        Category,
        Action
    }

    public enum TOOLBARNAME
    {
        btnAdd,
        btnEdit,
        btnDelete,
        btnSave,
        btnPrint,
        btnRefresh
    }

    public class EnumCollection
    {
    }

    public enum FormStatus
    {
        /// <summary>
        /// Trạng thái đang sẵn sàng cho việc thêm mới Item
        /// </summary>
        Ready,
        /// <summary>
        /// Trạng thái đang xem một Item
        /// </summary>
        View,
        /// <summary>
        /// Trạng thái đang chỉnh sửa một Item
        /// </summary>
        Edit,
        /// <summary>
        /// Trạng thái đang thêm mới một Item
        /// </summary>
        Add
    }

    public enum Tasks : short
    {
        /// <summary>
        /// Task bất kỳ để sử dụng cho những trường hợp đặc biệt trong FORM
        /// </summary>
        OTHERS,
        /// <summary>
        /// Task này sử dụng khi một form được Load lên và thực thi một tác vụ nào đó
        /// </summary>
        FORM_LOAD,
        /// <summary>
        /// Task này sử dụng để load dữ liệu vào Grid
        /// </summary>
        GRID_LOAD,
        /// <summary>
        /// Task này được thực thi khi chọn 1 item trong một Danh mục thì sẽ Bind dữ liệu qua Tab chi tiết của Danh mục đó
        /// </summary>
        ITEM_LOAD,
        /// <summary>
        /// Task này được thực thi khi thêm mới Item 
        /// </summary>
        ITEM_ADDNEW,
        /// <summary>
        /// Task này được thực thi khi xóa một Item
        /// </summary>
        ITEM_DELETE,
        /// <summary>
        /// Task này được thực thi khi cập nhật thông tin một Item
        /// </summary>
        ITEM_UPDATE,
        /// <summary>
        /// Task này được thực thi khi kiểm tra sự tồn tại của một Item nào đó
        /// </summary>
        ITEM_CHECK_EXISTS,
        /// <summary> 
        /// Task này được thực thi để load dữ liệu vào combobox
        /// </summary>
        COMBOBOX_LOAD,
        /// <summary>
        /// Load data for report
        /// </summary>
        LOAD_REPORT,
        /// <summary>
        /// Load data of item
        /// </summary>
        LOAD_ITEM_DATA,
        /// <summary>
        /// Generate auto number
        /// </summary>
        AUTO_NUMBER_LOAD
    }

    public class ErpPermission
    {
        private bool _isAdmin = false;
        public bool IsAdmin
        {
            get
            {
                return _isAdmin;
            }
            set
            {
                _isAdmin = value;
            }
        }

        private bool _isSupervisor = false;
        public bool IsSupervisor
        {
            get
            {
                return _isSupervisor;
            }
            set
            {
                _isSupervisor = value;
            }
        }

        private bool _canRun = false;
        public bool CanRun
        {
            get
            {
                return _canRun;
            }
            set
            {
                _canRun = value;
            }
        }

        private bool _canAdd = false;
        public bool CanAdd
        {
            get
            {
                return _canAdd;
            }
            set
            {
                _canAdd = value;
            }
        }

        private bool _canEdit = false;
        public bool CanEdit
        {
            get
            {
                return _canEdit;
            }
            set
            {
                _canEdit = value;
            }
        }

        private bool _canDelete = false;
        public bool CanDelete
        {
            get
            {
                return _canDelete;
            }
            set
            {
                _canDelete = value;
            }
        }

    }

}
